package com.travel.server.manager.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ProjectInfoExample extends PageExample{
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProjectInfoExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andNumberIsNull() {
            addCriterion("number is null");
            return (Criteria) this;
        }

        public Criteria andNumberIsNotNull() {
            addCriterion("number is not null");
            return (Criteria) this;
        }

        public Criteria andNumberEqualTo(String value) {
            addCriterion("number =", value, "number");
            return (Criteria) this;
        }

        public Criteria andNumberNotEqualTo(String value) {
            addCriterion("number <>", value, "number");
            return (Criteria) this;
        }

        public Criteria andNumberGreaterThan(String value) {
            addCriterion("number >", value, "number");
            return (Criteria) this;
        }

        public Criteria andNumberGreaterThanOrEqualTo(String value) {
            addCriterion("number >=", value, "number");
            return (Criteria) this;
        }

        public Criteria andNumberLessThan(String value) {
            addCriterion("number <", value, "number");
            return (Criteria) this;
        }

        public Criteria andNumberLessThanOrEqualTo(String value) {
            addCriterion("number <=", value, "number");
            return (Criteria) this;
        }

        public Criteria andNumberLike(String value) {
            addCriterion("number like", value, "number");
            return (Criteria) this;
        }

        public Criteria andNumberNotLike(String value) {
            addCriterion("number not like", value, "number");
            return (Criteria) this;
        }

        public Criteria andNumberIn(List<String> values) {
            addCriterion("number in", values, "number");
            return (Criteria) this;
        }

        public Criteria andNumberNotIn(List<String> values) {
            addCriterion("number not in", values, "number");
            return (Criteria) this;
        }

        public Criteria andNumberBetween(String value1, String value2) {
            addCriterion("number between", value1, value2, "number");
            return (Criteria) this;
        }

        public Criteria andNumberNotBetween(String value1, String value2) {
            addCriterion("number not between", value1, value2, "number");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("name is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("name is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("name =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("name <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("name >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("name >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("name <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("name <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("name like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("name not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("name in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("name not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("name between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("name not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsIsNull() {
            addCriterion("project_explains is null");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsIsNotNull() {
            addCriterion("project_explains is not null");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsEqualTo(String value) {
            addCriterion("project_explains =", value, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsNotEqualTo(String value) {
            addCriterion("project_explains <>", value, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsGreaterThan(String value) {
            addCriterion("project_explains >", value, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsGreaterThanOrEqualTo(String value) {
            addCriterion("project_explains >=", value, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsLessThan(String value) {
            addCriterion("project_explains <", value, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsLessThanOrEqualTo(String value) {
            addCriterion("project_explains <=", value, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsLike(String value) {
            addCriterion("project_explains like", value, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsNotLike(String value) {
            addCriterion("project_explains not like", value, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsIn(List<String> values) {
            addCriterion("project_explains in", values, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsNotIn(List<String> values) {
            addCriterion("project_explains not in", values, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsBetween(String value1, String value2) {
            addCriterion("project_explains between", value1, value2, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectExplainsNotBetween(String value1, String value2) {
            addCriterion("project_explains not between", value1, value2, "projectExplains");
            return (Criteria) this;
        }

        public Criteria andProjectTypeIsNull() {
            addCriterion("project_type is null");
            return (Criteria) this;
        }

        public Criteria andProjectTypeIsNotNull() {
            addCriterion("project_type is not null");
            return (Criteria) this;
        }

        public Criteria andProjectTypeEqualTo(String value) {
            addCriterion("project_type =", value, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectTypeNotEqualTo(String value) {
            addCriterion("project_type <>", value, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectTypeGreaterThan(String value) {
            addCriterion("project_type >", value, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectTypeGreaterThanOrEqualTo(String value) {
            addCriterion("project_type >=", value, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectTypeLessThan(String value) {
            addCriterion("project_type <", value, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectTypeLessThanOrEqualTo(String value) {
            addCriterion("project_type <=", value, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectTypeLike(String value) {
            addCriterion("project_type like", value, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectTypeNotLike(String value) {
            addCriterion("project_type not like", value, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectTypeIn(List<String> values) {
            addCriterion("project_type in", values, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectTypeNotIn(List<String> values) {
            addCriterion("project_type not in", values, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectTypeBetween(String value1, String value2) {
            addCriterion("project_type between", value1, value2, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectTypeNotBetween(String value1, String value2) {
            addCriterion("project_type not between", value1, value2, "projectType");
            return (Criteria) this;
        }

        public Criteria andProjectGroupIsNull() {
            addCriterion("project_group is null");
            return (Criteria) this;
        }

        public Criteria andProjectGroupIsNotNull() {
            addCriterion("project_group is not null");
            return (Criteria) this;
        }

        public Criteria andProjectGroupEqualTo(String value) {
            addCriterion("project_group =", value, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectGroupNotEqualTo(String value) {
            addCriterion("project_group <>", value, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectGroupGreaterThan(String value) {
            addCriterion("project_group >", value, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectGroupGreaterThanOrEqualTo(String value) {
            addCriterion("project_group >=", value, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectGroupLessThan(String value) {
            addCriterion("project_group <", value, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectGroupLessThanOrEqualTo(String value) {
            addCriterion("project_group <=", value, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectGroupLike(String value) {
            addCriterion("project_group like", value, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectGroupNotLike(String value) {
            addCriterion("project_group not like", value, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectGroupIn(List<String> values) {
            addCriterion("project_group in", values, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectGroupNotIn(List<String> values) {
            addCriterion("project_group not in", values, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectGroupBetween(String value1, String value2) {
            addCriterion("project_group between", value1, value2, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectGroupNotBetween(String value1, String value2) {
            addCriterion("project_group not between", value1, value2, "projectGroup");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlIsNull() {
            addCriterion("project_pic_url is null");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlIsNotNull() {
            addCriterion("project_pic_url is not null");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlEqualTo(String value) {
            addCriterion("project_pic_url =", value, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlNotEqualTo(String value) {
            addCriterion("project_pic_url <>", value, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlGreaterThan(String value) {
            addCriterion("project_pic_url >", value, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlGreaterThanOrEqualTo(String value) {
            addCriterion("project_pic_url >=", value, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlLessThan(String value) {
            addCriterion("project_pic_url <", value, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlLessThanOrEqualTo(String value) {
            addCriterion("project_pic_url <=", value, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlLike(String value) {
            addCriterion("project_pic_url like", value, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlNotLike(String value) {
            addCriterion("project_pic_url not like", value, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlIn(List<String> values) {
            addCriterion("project_pic_url in", values, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlNotIn(List<String> values) {
            addCriterion("project_pic_url not in", values, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlBetween(String value1, String value2) {
            addCriterion("project_pic_url between", value1, value2, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andProjectPicUrlNotBetween(String value1, String value2) {
            addCriterion("project_pic_url not between", value1, value2, "projectPicUrl");
            return (Criteria) this;
        }

        public Criteria andStateIsNull() {
            addCriterion("state is null");
            return (Criteria) this;
        }

        public Criteria andStateIsNotNull() {
            addCriterion("state is not null");
            return (Criteria) this;
        }

        public Criteria andStateEqualTo(Integer value) {
            addCriterion("state =", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotEqualTo(Integer value) {
            addCriterion("state <>", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateGreaterThan(Integer value) {
            addCriterion("state >", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("state >=", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateLessThan(Integer value) {
            addCriterion("state <", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateLessThanOrEqualTo(Integer value) {
            addCriterion("state <=", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateIn(List<Integer> values) {
            addCriterion("state in", values, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotIn(List<Integer> values) {
            addCriterion("state not in", values, "state");
            return (Criteria) this;
        }

        public Criteria andStateBetween(Integer value1, Integer value2) {
            addCriterion("state between", value1, value2, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotBetween(Integer value1, Integer value2) {
            addCriterion("state not between", value1, value2, "state");
            return (Criteria) this;
        }

        public Criteria andEmailsIsNull() {
            addCriterion("emails is null");
            return (Criteria) this;
        }

        public Criteria andEmailsIsNotNull() {
            addCriterion("emails is not null");
            return (Criteria) this;
        }

        public Criteria andEmailsEqualTo(String value) {
            addCriterion("emails =", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsNotEqualTo(String value) {
            addCriterion("emails <>", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsGreaterThan(String value) {
            addCriterion("emails >", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsGreaterThanOrEqualTo(String value) {
            addCriterion("emails >=", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsLessThan(String value) {
            addCriterion("emails <", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsLessThanOrEqualTo(String value) {
            addCriterion("emails <=", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsLike(String value) {
            addCriterion("emails like", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsNotLike(String value) {
            addCriterion("emails not like", value, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsIn(List<String> values) {
            addCriterion("emails in", values, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsNotIn(List<String> values) {
            addCriterion("emails not in", values, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsBetween(String value1, String value2) {
            addCriterion("emails between", value1, value2, "emails");
            return (Criteria) this;
        }

        public Criteria andEmailsNotBetween(String value1, String value2) {
            addCriterion("emails not between", value1, value2, "emails");
            return (Criteria) this;
        }

        public Criteria andCountryIsNull() {
            addCriterion("country is null");
            return (Criteria) this;
        }

        public Criteria andCountryIsNotNull() {
            addCriterion("country is not null");
            return (Criteria) this;
        }

        public Criteria andCountryEqualTo(String value) {
            addCriterion("country =", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryNotEqualTo(String value) {
            addCriterion("country <>", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryGreaterThan(String value) {
            addCriterion("country >", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryGreaterThanOrEqualTo(String value) {
            addCriterion("country >=", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryLessThan(String value) {
            addCriterion("country <", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryLessThanOrEqualTo(String value) {
            addCriterion("country <=", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryLike(String value) {
            addCriterion("country like", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryNotLike(String value) {
            addCriterion("country not like", value, "country");
            return (Criteria) this;
        }

        public Criteria andCountryIn(List<String> values) {
            addCriterion("country in", values, "country");
            return (Criteria) this;
        }

        public Criteria andCountryNotIn(List<String> values) {
            addCriterion("country not in", values, "country");
            return (Criteria) this;
        }

        public Criteria andCountryBetween(String value1, String value2) {
            addCriterion("country between", value1, value2, "country");
            return (Criteria) this;
        }

        public Criteria andCountryNotBetween(String value1, String value2) {
            addCriterion("country not between", value1, value2, "country");
            return (Criteria) this;
        }

        public Criteria andTravelTypeIsNull() {
            addCriterion("travel_type is null");
            return (Criteria) this;
        }

        public Criteria andTravelTypeIsNotNull() {
            addCriterion("travel_type is not null");
            return (Criteria) this;
        }

        public Criteria andTravelTypeEqualTo(String value) {
            addCriterion("travel_type =", value, "travelType");
            return (Criteria) this;
        }

        public Criteria andTravelTypeNotEqualTo(String value) {
            addCriterion("travel_type <>", value, "travelType");
            return (Criteria) this;
        }

        public Criteria andTravelTypeGreaterThan(String value) {
            addCriterion("travel_type >", value, "travelType");
            return (Criteria) this;
        }

        public Criteria andTravelTypeGreaterThanOrEqualTo(String value) {
            addCriterion("travel_type >=", value, "travelType");
            return (Criteria) this;
        }

        public Criteria andTravelTypeLessThan(String value) {
            addCriterion("travel_type <", value, "travelType");
            return (Criteria) this;
        }

        public Criteria andTravelTypeLessThanOrEqualTo(String value) {
            addCriterion("travel_type <=", value, "travelType");
            return (Criteria) this;
        }

        public Criteria andTravelTypeLike(String value) {
            addCriterion("travel_type like", value, "travelType");
            return (Criteria) this;
        }

        public Criteria andTravelTypeNotLike(String value) {
            addCriterion("travel_type not like", value, "travelType");
            return (Criteria) this;
        }

        public Criteria andTravelTypeIn(List<String> values) {
            addCriterion("travel_type in", values, "travelType");
            return (Criteria) this;
        }

        public Criteria andTravelTypeNotIn(List<String> values) {
            addCriterion("travel_type not in", values, "travelType");
            return (Criteria) this;
        }

        public Criteria andTravelTypeBetween(String value1, String value2) {
            addCriterion("travel_type between", value1, value2, "travelType");
            return (Criteria) this;
        }

        public Criteria andTravelTypeNotBetween(String value1, String value2) {
            addCriterion("travel_type not between", value1, value2, "travelType");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishIsNull() {
            addCriterion("need_english is null");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishIsNotNull() {
            addCriterion("need_english is not null");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishEqualTo(Integer value) {
            addCriterion("need_english =", value, "needEnglish");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishNotEqualTo(Integer value) {
            addCriterion("need_english <>", value, "needEnglish");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishGreaterThan(Integer value) {
            addCriterion("need_english >", value, "needEnglish");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishGreaterThanOrEqualTo(Integer value) {
            addCriterion("need_english >=", value, "needEnglish");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishLessThan(Integer value) {
            addCriterion("need_english <", value, "needEnglish");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishLessThanOrEqualTo(Integer value) {
            addCriterion("need_english <=", value, "needEnglish");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishIn(List<Integer> values) {
            addCriterion("need_english in", values, "needEnglish");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishNotIn(List<Integer> values) {
            addCriterion("need_english not in", values, "needEnglish");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishBetween(Integer value1, Integer value2) {
            addCriterion("need_english between", value1, value2, "needEnglish");
            return (Criteria) this;
        }

        public Criteria andNeedEnglishNotBetween(Integer value1, Integer value2) {
            addCriterion("need_english not between", value1, value2, "needEnglish");
            return (Criteria) this;
        }

        public Criteria andQuestionIdIsNull() {
            addCriterion("question_id is null");
            return (Criteria) this;
        }

        public Criteria andQuestionIdIsNotNull() {
            addCriterion("question_id is not null");
            return (Criteria) this;
        }

        public Criteria andQuestionIdEqualTo(Integer value) {
            addCriterion("question_id =", value, "questionId");
            return (Criteria) this;
        }

        public Criteria andQuestionIdNotEqualTo(Integer value) {
            addCriterion("question_id <>", value, "questionId");
            return (Criteria) this;
        }

        public Criteria andQuestionIdGreaterThan(Integer value) {
            addCriterion("question_id >", value, "questionId");
            return (Criteria) this;
        }

        public Criteria andQuestionIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("question_id >=", value, "questionId");
            return (Criteria) this;
        }

        public Criteria andQuestionIdLessThan(Integer value) {
            addCriterion("question_id <", value, "questionId");
            return (Criteria) this;
        }

        public Criteria andQuestionIdLessThanOrEqualTo(Integer value) {
            addCriterion("question_id <=", value, "questionId");
            return (Criteria) this;
        }

        public Criteria andQuestionIdIn(List<Integer> values) {
            addCriterion("question_id in", values, "questionId");
            return (Criteria) this;
        }

        public Criteria andQuestionIdNotIn(List<Integer> values) {
            addCriterion("question_id not in", values, "questionId");
            return (Criteria) this;
        }

        public Criteria andQuestionIdBetween(Integer value1, Integer value2) {
            addCriterion("question_id between", value1, value2, "questionId");
            return (Criteria) this;
        }

        public Criteria andQuestionIdNotBetween(Integer value1, Integer value2) {
            addCriterion("question_id not between", value1, value2, "questionId");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdIsNull() {
            addCriterion("project_charge_id is null");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdIsNotNull() {
            addCriterion("project_charge_id is not null");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdEqualTo(Integer value) {
            addCriterion("project_charge_id =", value, "projectChargeId");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdNotEqualTo(Integer value) {
            addCriterion("project_charge_id <>", value, "projectChargeId");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdGreaterThan(Integer value) {
            addCriterion("project_charge_id >", value, "projectChargeId");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("project_charge_id >=", value, "projectChargeId");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdLessThan(Integer value) {
            addCriterion("project_charge_id <", value, "projectChargeId");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdLessThanOrEqualTo(Integer value) {
            addCriterion("project_charge_id <=", value, "projectChargeId");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdIn(List<Integer> values) {
            addCriterion("project_charge_id in", values, "projectChargeId");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdNotIn(List<Integer> values) {
            addCriterion("project_charge_id not in", values, "projectChargeId");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdBetween(Integer value1, Integer value2) {
            addCriterion("project_charge_id between", value1, value2, "projectChargeId");
            return (Criteria) this;
        }

        public Criteria andProjectChargeIdNotBetween(Integer value1, Integer value2) {
            addCriterion("project_charge_id not between", value1, value2, "projectChargeId");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameIsNull() {
            addCriterion("project_charge_name is null");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameIsNotNull() {
            addCriterion("project_charge_name is not null");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameEqualTo(String value) {
            addCriterion("project_charge_name =", value, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameNotEqualTo(String value) {
            addCriterion("project_charge_name <>", value, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameGreaterThan(String value) {
            addCriterion("project_charge_name >", value, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameGreaterThanOrEqualTo(String value) {
            addCriterion("project_charge_name >=", value, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameLessThan(String value) {
            addCriterion("project_charge_name <", value, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameLessThanOrEqualTo(String value) {
            addCriterion("project_charge_name <=", value, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameLike(String value) {
            addCriterion("project_charge_name like", value, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameNotLike(String value) {
            addCriterion("project_charge_name not like", value, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameIn(List<String> values) {
            addCriterion("project_charge_name in", values, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameNotIn(List<String> values) {
            addCriterion("project_charge_name not in", values, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameBetween(String value1, String value2) {
            addCriterion("project_charge_name between", value1, value2, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andProjectChargeNameNotBetween(String value1, String value2) {
            addCriterion("project_charge_name not between", value1, value2, "projectChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdIsNull() {
            addCriterion("order_charge_id is null");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdIsNotNull() {
            addCriterion("order_charge_id is not null");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdEqualTo(Integer value) {
            addCriterion("order_charge_id =", value, "orderChargeId");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdNotEqualTo(Integer value) {
            addCriterion("order_charge_id <>", value, "orderChargeId");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdGreaterThan(Integer value) {
            addCriterion("order_charge_id >", value, "orderChargeId");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("order_charge_id >=", value, "orderChargeId");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdLessThan(Integer value) {
            addCriterion("order_charge_id <", value, "orderChargeId");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdLessThanOrEqualTo(Integer value) {
            addCriterion("order_charge_id <=", value, "orderChargeId");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdIn(List<Integer> values) {
            addCriterion("order_charge_id in", values, "orderChargeId");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdNotIn(List<Integer> values) {
            addCriterion("order_charge_id not in", values, "orderChargeId");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdBetween(Integer value1, Integer value2) {
            addCriterion("order_charge_id between", value1, value2, "orderChargeId");
            return (Criteria) this;
        }

        public Criteria andOrderChargeIdNotBetween(Integer value1, Integer value2) {
            addCriterion("order_charge_id not between", value1, value2, "orderChargeId");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameIsNull() {
            addCriterion("order_charge_name is null");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameIsNotNull() {
            addCriterion("order_charge_name is not null");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameEqualTo(String value) {
            addCriterion("order_charge_name =", value, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameNotEqualTo(String value) {
            addCriterion("order_charge_name <>", value, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameGreaterThan(String value) {
            addCriterion("order_charge_name >", value, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameGreaterThanOrEqualTo(String value) {
            addCriterion("order_charge_name >=", value, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameLessThan(String value) {
            addCriterion("order_charge_name <", value, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameLessThanOrEqualTo(String value) {
            addCriterion("order_charge_name <=", value, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameLike(String value) {
            addCriterion("order_charge_name like", value, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameNotLike(String value) {
            addCriterion("order_charge_name not like", value, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameIn(List<String> values) {
            addCriterion("order_charge_name in", values, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameNotIn(List<String> values) {
            addCriterion("order_charge_name not in", values, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameBetween(String value1, String value2) {
            addCriterion("order_charge_name between", value1, value2, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andOrderChargeNameNotBetween(String value1, String value2) {
            addCriterion("order_charge_name not between", value1, value2, "orderChargeName");
            return (Criteria) this;
        }

        public Criteria andPriceIsNull() {
            addCriterion("price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(Long value) {
            addCriterion("price =", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotEqualTo(Long value) {
            addCriterion("price <>", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThan(Long value) {
            addCriterion("price >", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThanOrEqualTo(Long value) {
            addCriterion("price >=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThan(Long value) {
            addCriterion("price <", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThanOrEqualTo(Long value) {
            addCriterion("price <=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceIn(List<Long> values) {
            addCriterion("price in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotIn(List<Long> values) {
            addCriterion("price not in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceBetween(Long value1, Long value2) {
            addCriterion("price between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotBetween(Long value1, Long value2) {
            addCriterion("price not between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andLinePriceIsNull() {
            addCriterion("line_price is null");
            return (Criteria) this;
        }

        public Criteria andLinePriceIsNotNull() {
            addCriterion("line_price is not null");
            return (Criteria) this;
        }

        public Criteria andLinePriceEqualTo(Long value) {
            addCriterion("line_price =", value, "linePrice");
            return (Criteria) this;
        }

        public Criteria andLinePriceNotEqualTo(Long value) {
            addCriterion("line_price <>", value, "linePrice");
            return (Criteria) this;
        }

        public Criteria andLinePriceGreaterThan(Long value) {
            addCriterion("line_price >", value, "linePrice");
            return (Criteria) this;
        }

        public Criteria andLinePriceGreaterThanOrEqualTo(Long value) {
            addCriterion("line_price >=", value, "linePrice");
            return (Criteria) this;
        }

        public Criteria andLinePriceLessThan(Long value) {
            addCriterion("line_price <", value, "linePrice");
            return (Criteria) this;
        }

        public Criteria andLinePriceLessThanOrEqualTo(Long value) {
            addCriterion("line_price <=", value, "linePrice");
            return (Criteria) this;
        }

        public Criteria andLinePriceIn(List<Long> values) {
            addCriterion("line_price in", values, "linePrice");
            return (Criteria) this;
        }

        public Criteria andLinePriceNotIn(List<Long> values) {
            addCriterion("line_price not in", values, "linePrice");
            return (Criteria) this;
        }

        public Criteria andLinePriceBetween(Long value1, Long value2) {
            addCriterion("line_price between", value1, value2, "linePrice");
            return (Criteria) this;
        }

        public Criteria andLinePriceNotBetween(Long value1, Long value2) {
            addCriterion("line_price not between", value1, value2, "linePrice");
            return (Criteria) this;
        }

        public Criteria andStockIsNull() {
            addCriterion("stock is null");
            return (Criteria) this;
        }

        public Criteria andStockIsNotNull() {
            addCriterion("stock is not null");
            return (Criteria) this;
        }

        public Criteria andStockEqualTo(Integer value) {
            addCriterion("stock =", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotEqualTo(Integer value) {
            addCriterion("stock <>", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockGreaterThan(Integer value) {
            addCriterion("stock >", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockGreaterThanOrEqualTo(Integer value) {
            addCriterion("stock >=", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockLessThan(Integer value) {
            addCriterion("stock <", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockLessThanOrEqualTo(Integer value) {
            addCriterion("stock <=", value, "stock");
            return (Criteria) this;
        }

        public Criteria andStockIn(List<Integer> values) {
            addCriterion("stock in", values, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotIn(List<Integer> values) {
            addCriterion("stock not in", values, "stock");
            return (Criteria) this;
        }

        public Criteria andStockBetween(Integer value1, Integer value2) {
            addCriterion("stock between", value1, value2, "stock");
            return (Criteria) this;
        }

        public Criteria andStockNotBetween(Integer value1, Integer value2) {
            addCriterion("stock not between", value1, value2, "stock");
            return (Criteria) this;
        }

        public Criteria andMemberPriceIsNull() {
            addCriterion("member_price is null");
            return (Criteria) this;
        }

        public Criteria andMemberPriceIsNotNull() {
            addCriterion("member_price is not null");
            return (Criteria) this;
        }

        public Criteria andMemberPriceEqualTo(Long value) {
            addCriterion("member_price =", value, "memberPrice");
            return (Criteria) this;
        }

        public Criteria andMemberPriceNotEqualTo(Long value) {
            addCriterion("member_price <>", value, "memberPrice");
            return (Criteria) this;
        }

        public Criteria andMemberPriceGreaterThan(Long value) {
            addCriterion("member_price >", value, "memberPrice");
            return (Criteria) this;
        }

        public Criteria andMemberPriceGreaterThanOrEqualTo(Long value) {
            addCriterion("member_price >=", value, "memberPrice");
            return (Criteria) this;
        }

        public Criteria andMemberPriceLessThan(Long value) {
            addCriterion("member_price <", value, "memberPrice");
            return (Criteria) this;
        }

        public Criteria andMemberPriceLessThanOrEqualTo(Long value) {
            addCriterion("member_price <=", value, "memberPrice");
            return (Criteria) this;
        }

        public Criteria andMemberPriceIn(List<Long> values) {
            addCriterion("member_price in", values, "memberPrice");
            return (Criteria) this;
        }

        public Criteria andMemberPriceNotIn(List<Long> values) {
            addCriterion("member_price not in", values, "memberPrice");
            return (Criteria) this;
        }

        public Criteria andMemberPriceBetween(Long value1, Long value2) {
            addCriterion("member_price between", value1, value2, "memberPrice");
            return (Criteria) this;
        }

        public Criteria andMemberPriceNotBetween(Long value1, Long value2) {
            addCriterion("member_price not between", value1, value2, "memberPrice");
            return (Criteria) this;
        }

        public Criteria andShelfTypeIsNull() {
            addCriterion("shelf_type is null");
            return (Criteria) this;
        }

        public Criteria andShelfTypeIsNotNull() {
            addCriterion("shelf_type is not null");
            return (Criteria) this;
        }

        public Criteria andShelfTypeEqualTo(Integer value) {
            addCriterion("shelf_type =", value, "shelfType");
            return (Criteria) this;
        }

        public Criteria andShelfTypeNotEqualTo(Integer value) {
            addCriterion("shelf_type <>", value, "shelfType");
            return (Criteria) this;
        }

        public Criteria andShelfTypeGreaterThan(Integer value) {
            addCriterion("shelf_type >", value, "shelfType");
            return (Criteria) this;
        }

        public Criteria andShelfTypeGreaterThanOrEqualTo(Integer value) {
            addCriterion("shelf_type >=", value, "shelfType");
            return (Criteria) this;
        }

        public Criteria andShelfTypeLessThan(Integer value) {
            addCriterion("shelf_type <", value, "shelfType");
            return (Criteria) this;
        }

        public Criteria andShelfTypeLessThanOrEqualTo(Integer value) {
            addCriterion("shelf_type <=", value, "shelfType");
            return (Criteria) this;
        }

        public Criteria andShelfTypeIn(List<Integer> values) {
            addCriterion("shelf_type in", values, "shelfType");
            return (Criteria) this;
        }

        public Criteria andShelfTypeNotIn(List<Integer> values) {
            addCriterion("shelf_type not in", values, "shelfType");
            return (Criteria) this;
        }

        public Criteria andShelfTypeBetween(Integer value1, Integer value2) {
            addCriterion("shelf_type between", value1, value2, "shelfType");
            return (Criteria) this;
        }

        public Criteria andShelfTypeNotBetween(Integer value1, Integer value2) {
            addCriterion("shelf_type not between", value1, value2, "shelfType");
            return (Criteria) this;
        }

        public Criteria andShelfTimeIsNull() {
            addCriterion("shelf_time is null");
            return (Criteria) this;
        }

        public Criteria andShelfTimeIsNotNull() {
            addCriterion("shelf_time is not null");
            return (Criteria) this;
        }

        public Criteria andShelfTimeEqualTo(Date value) {
            addCriterion("shelf_time =", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeNotEqualTo(Date value) {
            addCriterion("shelf_time <>", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeGreaterThan(Date value) {
            addCriterion("shelf_time >", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("shelf_time >=", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeLessThan(Date value) {
            addCriterion("shelf_time <", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeLessThanOrEqualTo(Date value) {
            addCriterion("shelf_time <=", value, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeIn(List<Date> values) {
            addCriterion("shelf_time in", values, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeNotIn(List<Date> values) {
            addCriterion("shelf_time not in", values, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeBetween(Date value1, Date value2) {
            addCriterion("shelf_time between", value1, value2, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andShelfTimeNotBetween(Date value1, Date value2) {
            addCriterion("shelf_time not between", value1, value2, "shelfTime");
            return (Criteria) this;
        }

        public Criteria andLimitNumberIsNull() {
            addCriterion("limit_number is null");
            return (Criteria) this;
        }

        public Criteria andLimitNumberIsNotNull() {
            addCriterion("limit_number is not null");
            return (Criteria) this;
        }

        public Criteria andLimitNumberEqualTo(Integer value) {
            addCriterion("limit_number =", value, "limitNumber");
            return (Criteria) this;
        }

        public Criteria andLimitNumberNotEqualTo(Integer value) {
            addCriterion("limit_number <>", value, "limitNumber");
            return (Criteria) this;
        }

        public Criteria andLimitNumberGreaterThan(Integer value) {
            addCriterion("limit_number >", value, "limitNumber");
            return (Criteria) this;
        }

        public Criteria andLimitNumberGreaterThanOrEqualTo(Integer value) {
            addCriterion("limit_number >=", value, "limitNumber");
            return (Criteria) this;
        }

        public Criteria andLimitNumberLessThan(Integer value) {
            addCriterion("limit_number <", value, "limitNumber");
            return (Criteria) this;
        }

        public Criteria andLimitNumberLessThanOrEqualTo(Integer value) {
            addCriterion("limit_number <=", value, "limitNumber");
            return (Criteria) this;
        }

        public Criteria andLimitNumberIn(List<Integer> values) {
            addCriterion("limit_number in", values, "limitNumber");
            return (Criteria) this;
        }

        public Criteria andLimitNumberNotIn(List<Integer> values) {
            addCriterion("limit_number not in", values, "limitNumber");
            return (Criteria) this;
        }

        public Criteria andLimitNumberBetween(Integer value1, Integer value2) {
            addCriterion("limit_number between", value1, value2, "limitNumber");
            return (Criteria) this;
        }

        public Criteria andLimitNumberNotBetween(Integer value1, Integer value2) {
            addCriterion("limit_number not between", value1, value2, "limitNumber");
            return (Criteria) this;
        }

        public Criteria andMemberTypeIsNull() {
            addCriterion("member_type is null");
            return (Criteria) this;
        }

        public Criteria andMemberTypeIsNotNull() {
            addCriterion("member_type is not null");
            return (Criteria) this;
        }

        public Criteria andMemberTypeEqualTo(String value) {
            addCriterion("member_type =", value, "memberType");
            return (Criteria) this;
        }

        public Criteria andMemberTypeNotEqualTo(String value) {
            addCriterion("member_type <>", value, "memberType");
            return (Criteria) this;
        }

        public Criteria andMemberTypeGreaterThan(String value) {
            addCriterion("member_type >", value, "memberType");
            return (Criteria) this;
        }

        public Criteria andMemberTypeGreaterThanOrEqualTo(String value) {
            addCriterion("member_type >=", value, "memberType");
            return (Criteria) this;
        }

        public Criteria andMemberTypeLessThan(String value) {
            addCriterion("member_type <", value, "memberType");
            return (Criteria) this;
        }

        public Criteria andMemberTypeLessThanOrEqualTo(String value) {
            addCriterion("member_type <=", value, "memberType");
            return (Criteria) this;
        }

        public Criteria andMemberTypeLike(String value) {
            addCriterion("member_type like", value, "memberType");
            return (Criteria) this;
        }

        public Criteria andMemberTypeNotLike(String value) {
            addCriterion("member_type not like", value, "memberType");
            return (Criteria) this;
        }

        public Criteria andMemberTypeIn(List<String> values) {
            addCriterion("member_type in", values, "memberType");
            return (Criteria) this;
        }

        public Criteria andMemberTypeNotIn(List<String> values) {
            addCriterion("member_type not in", values, "memberType");
            return (Criteria) this;
        }

        public Criteria andMemberTypeBetween(String value1, String value2) {
            addCriterion("member_type between", value1, value2, "memberType");
            return (Criteria) this;
        }

        public Criteria andMemberTypeNotBetween(String value1, String value2) {
            addCriterion("member_type not between", value1, value2, "memberType");
            return (Criteria) this;
        }

        public Criteria andBackgroundIsNull() {
            addCriterion("background is null");
            return (Criteria) this;
        }

        public Criteria andBackgroundIsNotNull() {
            addCriterion("background is not null");
            return (Criteria) this;
        }

        public Criteria andBackgroundEqualTo(String value) {
            addCriterion("background =", value, "background");
            return (Criteria) this;
        }

        public Criteria andBackgroundNotEqualTo(String value) {
            addCriterion("background <>", value, "background");
            return (Criteria) this;
        }

        public Criteria andBackgroundGreaterThan(String value) {
            addCriterion("background >", value, "background");
            return (Criteria) this;
        }

        public Criteria andBackgroundGreaterThanOrEqualTo(String value) {
            addCriterion("background >=", value, "background");
            return (Criteria) this;
        }

        public Criteria andBackgroundLessThan(String value) {
            addCriterion("background <", value, "background");
            return (Criteria) this;
        }

        public Criteria andBackgroundLessThanOrEqualTo(String value) {
            addCriterion("background <=", value, "background");
            return (Criteria) this;
        }

        public Criteria andBackgroundLike(String value) {
            addCriterion("background like", value, "background");
            return (Criteria) this;
        }

        public Criteria andBackgroundNotLike(String value) {
            addCriterion("background not like", value, "background");
            return (Criteria) this;
        }

        public Criteria andBackgroundIn(List<String> values) {
            addCriterion("background in", values, "background");
            return (Criteria) this;
        }

        public Criteria andBackgroundNotIn(List<String> values) {
            addCriterion("background not in", values, "background");
            return (Criteria) this;
        }

        public Criteria andBackgroundBetween(String value1, String value2) {
            addCriterion("background between", value1, value2, "background");
            return (Criteria) this;
        }

        public Criteria andBackgroundNotBetween(String value1, String value2) {
            addCriterion("background not between", value1, value2, "background");
            return (Criteria) this;
        }

        public Criteria andCostExplainsIsNull() {
            addCriterion("cost_explains is null");
            return (Criteria) this;
        }

        public Criteria andCostExplainsIsNotNull() {
            addCriterion("cost_explains is not null");
            return (Criteria) this;
        }

        public Criteria andCostExplainsEqualTo(String value) {
            addCriterion("cost_explains =", value, "costExplains");
            return (Criteria) this;
        }

        public Criteria andCostExplainsNotEqualTo(String value) {
            addCriterion("cost_explains <>", value, "costExplains");
            return (Criteria) this;
        }

        public Criteria andCostExplainsGreaterThan(String value) {
            addCriterion("cost_explains >", value, "costExplains");
            return (Criteria) this;
        }

        public Criteria andCostExplainsGreaterThanOrEqualTo(String value) {
            addCriterion("cost_explains >=", value, "costExplains");
            return (Criteria) this;
        }

        public Criteria andCostExplainsLessThan(String value) {
            addCriterion("cost_explains <", value, "costExplains");
            return (Criteria) this;
        }

        public Criteria andCostExplainsLessThanOrEqualTo(String value) {
            addCriterion("cost_explains <=", value, "costExplains");
            return (Criteria) this;
        }

        public Criteria andCostExplainsLike(String value) {
            addCriterion("cost_explains like", value, "costExplains");
            return (Criteria) this;
        }

        public Criteria andCostExplainsNotLike(String value) {
            addCriterion("cost_explains not like", value, "costExplains");
            return (Criteria) this;
        }

        public Criteria andCostExplainsIn(List<String> values) {
            addCriterion("cost_explains in", values, "costExplains");
            return (Criteria) this;
        }

        public Criteria andCostExplainsNotIn(List<String> values) {
            addCriterion("cost_explains not in", values, "costExplains");
            return (Criteria) this;
        }

        public Criteria andCostExplainsBetween(String value1, String value2) {
            addCriterion("cost_explains between", value1, value2, "costExplains");
            return (Criteria) this;
        }

        public Criteria andCostExplainsNotBetween(String value1, String value2) {
            addCriterion("cost_explains not between", value1, value2, "costExplains");
            return (Criteria) this;
        }

        public Criteria andAttentionIsNull() {
            addCriterion("attention is null");
            return (Criteria) this;
        }

        public Criteria andAttentionIsNotNull() {
            addCriterion("attention is not null");
            return (Criteria) this;
        }

        public Criteria andAttentionEqualTo(String value) {
            addCriterion("attention =", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionNotEqualTo(String value) {
            addCriterion("attention <>", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionGreaterThan(String value) {
            addCriterion("attention >", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionGreaterThanOrEqualTo(String value) {
            addCriterion("attention >=", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionLessThan(String value) {
            addCriterion("attention <", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionLessThanOrEqualTo(String value) {
            addCriterion("attention <=", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionLike(String value) {
            addCriterion("attention like", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionNotLike(String value) {
            addCriterion("attention not like", value, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionIn(List<String> values) {
            addCriterion("attention in", values, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionNotIn(List<String> values) {
            addCriterion("attention not in", values, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionBetween(String value1, String value2) {
            addCriterion("attention between", value1, value2, "attention");
            return (Criteria) this;
        }

        public Criteria andAttentionNotBetween(String value1, String value2) {
            addCriterion("attention not between", value1, value2, "attention");
            return (Criteria) this;
        }

        public Criteria andCreateByIsNull() {
            addCriterion("create_by is null");
            return (Criteria) this;
        }

        public Criteria andCreateByIsNotNull() {
            addCriterion("create_by is not null");
            return (Criteria) this;
        }

        public Criteria andCreateByEqualTo(String value) {
            addCriterion("create_by =", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotEqualTo(String value) {
            addCriterion("create_by <>", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByGreaterThan(String value) {
            addCriterion("create_by >", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByGreaterThanOrEqualTo(String value) {
            addCriterion("create_by >=", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLessThan(String value) {
            addCriterion("create_by <", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLessThanOrEqualTo(String value) {
            addCriterion("create_by <=", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByLike(String value) {
            addCriterion("create_by like", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotLike(String value) {
            addCriterion("create_by not like", value, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByIn(List<String> values) {
            addCriterion("create_by in", values, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotIn(List<String> values) {
            addCriterion("create_by not in", values, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByBetween(String value1, String value2) {
            addCriterion("create_by between", value1, value2, "createBy");
            return (Criteria) this;
        }

        public Criteria andCreateByNotBetween(String value1, String value2) {
            addCriterion("create_by not between", value1, value2, "createBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByIsNull() {
            addCriterion("update_by is null");
            return (Criteria) this;
        }

        public Criteria andUpdateByIsNotNull() {
            addCriterion("update_by is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateByEqualTo(String value) {
            addCriterion("update_by =", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotEqualTo(String value) {
            addCriterion("update_by <>", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByGreaterThan(String value) {
            addCriterion("update_by >", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByGreaterThanOrEqualTo(String value) {
            addCriterion("update_by >=", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLessThan(String value) {
            addCriterion("update_by <", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLessThanOrEqualTo(String value) {
            addCriterion("update_by <=", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByLike(String value) {
            addCriterion("update_by like", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotLike(String value) {
            addCriterion("update_by not like", value, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByIn(List<String> values) {
            addCriterion("update_by in", values, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotIn(List<String> values) {
            addCriterion("update_by not in", values, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByBetween(String value1, String value2) {
            addCriterion("update_by between", value1, value2, "updateBy");
            return (Criteria) this;
        }

        public Criteria andUpdateByNotBetween(String value1, String value2) {
            addCriterion("update_by not between", value1, value2, "updateBy");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNull() {
            addCriterion("create_time is null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIsNotNull() {
            addCriterion("create_time is not null");
            return (Criteria) this;
        }

        public Criteria andCreateTimeEqualTo(Date value) {
            addCriterion("create_time =", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotEqualTo(Date value) {
            addCriterion("create_time <>", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThan(Date value) {
            addCriterion("create_time >", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("create_time >=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThan(Date value) {
            addCriterion("create_time <", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
            addCriterion("create_time <=", value, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeIn(List<Date> values) {
            addCriterion("create_time in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotIn(List<Date> values) {
            addCriterion("create_time not in", values, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeBetween(Date value1, Date value2) {
            addCriterion("create_time between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
            addCriterion("create_time not between", value1, value2, "createTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNull() {
            addCriterion("update_time is null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIsNotNull() {
            addCriterion("update_time is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeEqualTo(Date value) {
            addCriterion("update_time =", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotEqualTo(Date value) {
            addCriterion("update_time <>", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThan(Date value) {
            addCriterion("update_time >", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("update_time >=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThan(Date value) {
            addCriterion("update_time <", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
            addCriterion("update_time <=", value, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeIn(List<Date> values) {
            addCriterion("update_time in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotIn(List<Date> values) {
            addCriterion("update_time not in", values, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
            addCriterion("update_time between", value1, value2, "updateTime");
            return (Criteria) this;
        }

        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
            addCriterion("update_time not between", value1, value2, "updateTime");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}